package com.builder;

import java.util.ArrayList;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import com.model.SeccionProducto;
import com.view.ProductoView;
import com.view.SeccionProductoView;
import com.view.SeccionView;

@ManagedBean
@ViewScoped
@SuppressWarnings("serial")
public class SeccionProductoBuilder extends
		BaseBuilder<SeccionProductoView, SeccionProducto> {

	@ManagedProperty("#{seccionBuilder}")
	private SeccionBuilder seccionBuilder;

	@ManagedProperty("#{productoBuilder}")
	private ProductoBuilder productoBuilder;

	@Override
	public SeccionProducto toDomain(SeccionProductoView view) {
		return new SeccionProducto(view.getId(),
				view.getSeccion() != null ? seccionBuilder.toDomain(view
						.getSeccion()) : null,
				view.getListaProductos() != null ? productoBuilder
						.toDomain(view.getListaProductos()) : null);
	}

	@Override
	public SeccionProductoView toView(SeccionProducto model) {
		return new SeccionProductoView(model.getID(),
				model.getSeccion() != null ? seccionBuilder.toView(model
						.getSeccion()) : new SeccionView(),
				model.getListaProductos() != null ? productoBuilder
						.toView(model.getListaProductos())
						: new ArrayList<ProductoView>());
	}

	public SeccionBuilder getSeccionBuilder() {
		return seccionBuilder;
	}

	public void setSeccionBuilder(SeccionBuilder seccionBuilder) {
		this.seccionBuilder = seccionBuilder;
	}

	public ProductoBuilder getProductoBuilder() {
		return productoBuilder;
	}

	public void setProductoBuilder(ProductoBuilder productoBuilder) {
		this.productoBuilder = productoBuilder;
	}

}
